@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uSCRN .BYTE "S:",155BkSc Close 1 Close 6 LDA #SCRN STA IR0+1 OPEN 6,12 Close 6 RTSDoQuit STA T}IR7 LDA #3 STA 82 LDA IR0 STA ??DGN3+1 LDA IR0+1 STA ??DGN3+2 JSR BkSc LDA #<[IOERs+1] STA IR0 LDA #>[IOERs+1] STAU} IR0+1 LDY IOERs DEY?DGN LDA IOERs+1,Y STA (88),Y DEY BPL ?DGN LDA IR7 JSR Strr LDY IOERs LDX #1??DGN2 LDA Nums,XV} STA (88),Y INY INX CPX #4 BNE ??DGN2 INY LDX #0??DGN3 LDA $FFFF,X CMP #155 BEQ ?DNN SEC SBC #32 STA (88),Y INYW} INX BNE ??DGN3?DNN LDA #0 STA 82 JMP ($0A)SErrs .SBYTE 39+32,"You can't save cur mode as sel mode"SErr LDA #SErrs STA IR0+1 JSR WriteL2 LDA #0 STA t20 LDA #255?SWait CMP t20 BNE ?SWait JMP SaveEndffs .SY}BYTE 34,"ff"nns .SBYTE 34,"n "WriteOO CMP #0 BNE ?eq0 LDA #ffs BNE ?rst?eq0 LDA #nns?rst SZ}TA IR0 STX IR0+1 JMP WriteNAWrff LDA #<[scadr+29+17*320] STA gsc LDA #>[scadr+29+17*320] STA gsc+1 LDA #0 JMP Write[}OOComSL LDA sic BEQ ?NHPUComSL LDA md CMP #3 BEQ ?NHP JSR HidePe?NHP LDA #0 STA sic JSR ClrL2 JMP WrffKeyCore\} STA kkk LDY #15 STY kky CMP #'+ BNE ?EIF0 LDA #11 RTS?EIF0 CMP #'* BNE ?EIF1 LDA #7 RTS?EIF1 CMP #'- BNE ?EIF2]} LDA #14 RTS?EIF2 CMP #'= BNE ?EIF3 LDA #13 RTS?EIF3 CMP #'c BEQ ??CCC JMP ?EIF4??CCC LDA md BNE ?NPB JSR PutBl^}?NPB LDA md BEQ ?CLD CMP #1 BNE ?OOt?CLD LDA #CtS STA IR0+1 JSR AskYN BEQ ?OOt JSR CLPe LDA _}xx STA i LDA yy JSR ClcSc LDA Ir0 STA Ir1 LDA IR0+1 STA Ir1+1 LDA #Sc STA IR0+1 LDA #11 STA i`}?xCpl JSR Move11 JSR IIR@32 DEC i BNE ?xCpl LDA #0 STA mx STA my STA xx STA yy LDA #5 STA rx STA ry LDA #3 STA a}md?OOt JSR ClrL2 LDA kky RTSCtS .SBYTE 27+32," Convert to Screen(Y or N)?")lds .SBYTE 36,"load"svs .SBYTE 36,"save"?EIb}F4 CMP #' BEQ ?@Yl JMP ?EIF5?@Yl TSX STX EStack LDA #'R STA Cmd JSR ComSL LDA #lds STA IR2+1c} JSR PressRet BNE ?NtDN JMP LoadEnd?NtDN LDA smd BNE ?ELIF1 JSR ReadBrit LDA #0 STA md JSR ClrL2 LDA #255 RTS?ELd}IF1 LDA md BNE ?NN@ JSR PutBl?NN@ LDA smd CMP #1 BNE ?ELIF2 LDA #1 JSR RWScreen LDA #3 STA md JMP LoadEnd?ELIF2e} CMP #2 BNE ?ELIF3 JSR ReadTowne LDA #1 STA md JMP LoadEnd?ELIF3 CMP #3 BNE ?ELIF4;A=3! JSR RWScreen LDA #3 STA mf}d JMP LoadEnd?ELIF4 CMP #4 BNE ?ELIF5 JSR RWDng LDA #2 STA md LDA #0 STA icn JSR ClDisplay JSR DispDng LDA #253 g}RTS?ELIF5 CMP #5 BNE ?ELIF6 LDA #5 LDX #1 JSR RWDScr LDA #3 STA md JMP LoadEnd?ELIF6 CMP #6 BNE LoadEnd LDA #6 h}LDX #0 JSR RWDScr LDA #4 STA mdLoadEnd JSR ClrL2 LDA kky RTS?EIF5 CMP #' BEQ ?@Ys JMP ?EIF6?@Ys TSX STX EStacki} LDA #svs STA IR2+1 JSR PressRet BNE ?Cnx JMP SaveEnd?Cnx JSR ComSL LDA #'W STA Cmd LDA smd BNj}E ?@EIF1 CMP md BEQ ?OK0 JMP SErr?OK0 JSR PutBl JSR WriteBrit JSR GetBl JMP SaveEnd?@EIF1 CMP #1 BNE ?@EIF2 LDA k}#3 CMP md BEQ ?OK1 JMP SErr?OK1 LDA #1 JSR RWScreen JMP SaveEnd?@EIF2 CMP #2 BNE ?@EIF3 LDA #1 CMP md BEQ ?OK2 l}JMP SErr?OK2 JSR WriteTowne JMP SaveEnd?@EIF3 CMP #3 BNE ?@EIF4 CMP md BEQ ?OK3 JMP SErr?OK3 LDA #3 JSR RWScreenm} JMP SaveEnd?@EIF4 CMP #4 BNE ?@EIF5 LDA #2 CMP md BEQ ?OK4 JMP SErr?OK4 JSR RWDng JMP SaveEnd?@EIF5 CMP #5 BNE n}?@EIF6 LDA #3 CMP md BEQ ?OK5 JMP SErr?OK5 LDA #5 LDX #1 JSR RWDScr JMP SaveEnd?@EIF6 CMP #6 BNE SaveEnd LDA mdo} CMP #4 BEQ ?OK6 CMP #3 BEQ ?OK6 JMP SErr?OK6 LDA #6 LDX #0 JSR RWDScrSaveEnd JSR ClrL2 LDA kky RTSfls .SBYTE 65,p}" Fill with current icon (Y or N)?"?EIF6 CMP #'F BNE ?EIF7 LDA #fls STA IR0+1 JSR AskYN BEQ ?O@Fq} LDA md CMP #2 BNE ??EL LDA icn CMP #22 BCS ?O@F LDA xx LSR A LSR A CLC ADC #>sc STA IR0+1 LDA xx AND #3 LSR Ar} ROR A ROR A STA IR0 LDY icn LDA ToV,Y LDY #63??loop STA (Ir0),y DEY BPL ??loop JMP ?O@F??EL LDA icn LDY #0??loos}p@ STA Sc,y STA Sc+256,y STA Sc+512,y STA Sc+768,y INY BNE ??loop@ LDA sic BEQ ?O@F JSR ShowPe?O@F JSR ClrL2 LDA kt}ky RTS?EIF7 CMP #'. BNE ?EIF8 INC icn LDA md CMP #2 BNE ?Oy LDA icn CMP #38 BNE ?Oy LDA #0 STA icn?Oy LDA kkyu} RTS?EIF8 CMP #', BNE ?EIF9 DEC icn LDA md CMP #2 BNE ?Ox LDA icn BPL ?Ox LDA #37 STA icn?Ox LDA kky RTS?EIF9v} CMP #'] BNE ?EIF10 CLC LDA icn ADC #10 STA icn LDA md CMP #2 BNE ?Ov LDA icn CMP #38 BCC ?Ov LDA #0 STA icn?Ovw} LDA kky RTS?EIF10 CMP #'[ BNE ?EIF11 SEC LDA icn SBC #10 STA icn LDA md CMP #2 BNE ?Ot LDA icn BPL ?Ot LDA #3x}7 STA icn?Ot LDA kky RTS?EIF11 CMP #';Quit BNE ?EIF12 LDA md BNE ?NtPBl JSR PutBl?NtPBl LDA #0 STA 53248 JSR Bky}Sc JMP ($0A)?EIF12 CMP #';sel BEQ ?THEN0 CMP #';sel BNE ?EIF13?THEN0 JSR Inv_ LDA kkk CMP #' BNE ??ELSE INC z}smd LDA smd CMP #7 BNE ??FI LDA #0 STA smd BEQ ??FI??ELSE DEC smd BPL ??FI LDA #6 STA smd??FI JSR Inv_ LDA kky{} RTS?EIF13 CMP #'> BEQ ?DOgr CMP #'< BEQ ?DOls CMP #'} BEQ ?DOcl CMP #' BNE ?EIF14 LDA #10 BNE ?DOcnt?DOgr LDA #|}1 BNE ?DOcnt?DOls LDA #255 BNE ?DOcnt?DOcl LDY smd LDA cnt,y CMP #10 BCS ?Nm EOR #255 CLC ADC #1 BNE ?DOcnt?Nm LD}}A #246?DOcnt STA kkk LDA smd BNE ?EL LDA md BEQ ??Dsp LDA #0 STA md STA sic JSR Wrff JSR ClrL2 LDA #255 RTS?EL~} LDY smd LDA cnt,y CLC ADC kkk STA cnt,y CMP #255 BNE ??Dsp LDA cmax,y STA cnt,y??Dsp JSR DispMenu LDA kky RTS?EI}F14 CMP #'1 BCC ?EIF15 CMP #'9+1 BCS ?EIF15 STA dvn LDX sofL+1 STX IR0 LDX sofH+1 STX Ir0+1 LDY #7 ORA #128 AND #}223 STA (IR0),Y LDA kky RTS?EIF15 CMP #' BNE ?EIF16 LDA sf EOR #1 STA sf LDA kky RTS?EIF16 CMP #'h BEQ ?Doh C}MP #'H BNE ?RTy?Doh JSR Help?RTy LDA kky RTSDoJoy TAX AND #1 BNE ?DN LDA #255 STA gyy BNE ?Chkx?DN TXA AND #2} BNE ?St0y LDA #1 STA gyy BNE ?Chkx?St0y LDA #0 STA gyy?Chkx TXA AND #4 BNE ?LF LDA #255 STA gxx RTS?LF TXA AND }#8 BNE ?St0x LDA #1 STA gxx RTS?St0x LDA #0 STA gxx RTS?Ls .SBYTE 35," Lx"Agsc CLC ADC gsc STA gsc BCC ?XX INC} gsc+1?XX RTSInf LDA #<[scadr+25+15*320] STA gsc LDA #>[scadr+25+15*320] STA gsc+1 LDA md CMP #2 BNE ?IELSE LDA rx} JSR WriteB LDA #3 JSR Agsc LDA ry JSR WriteB JMP ?IFI?IELSE LDA mx ASL A ASL A ASL A ASL A ADC xx ADC rx JSR }WriteB LDA #3 JSR Agsc LDA my ASL A ASL A ASL A ASL A ADC yy ADC ry JSR WriteB?IFI LDA #<[scadr+30+16*320] STA g}sc LDA #>[scadr+30+16*320] STA gsc+1 LDY md LDA mdnL,Y STA IR0 LDA mdnH,y STA IR0+1 JSR Write LDA md CMP #2 BNE ?I}Ot CLC LDA xx ADC #17 STA ?Ls+3 LDA #?Ls STA IR0+1 JSR WriteNA JMP ?endmd2?IOt LDA #3 STA Bln}k LDA #Blnk STA IR0+1 JSR WriteNA?endmd2 LDA #<[scadr+32+17*320] STA gsc LDA #>[scadr+32+17*320]} STA gsc+1 LDY sf LDA sofL,Y STA IR0 LDA sofH,Y STA IR0+1 JMP Write;(sof(sf))Locs .SBYTE 41," Locally#"DngLoop JS}R ClrL2?DLOOP LDA #1 STA crmd JSR PosCur JSR DispDng JSR Inf LDA #0 STA pp+1 LDA xx ASL A ASL A ASL A ASL A ASL} A ASL A ROL pp+1 ORA rx STA pp LDA ry ASL A ASL A ASL A ADC pp STA pp LDA pp+1 ADC #>Sc STA pp+1 LDA pp ADC #}pnd STA IR0+1 JSR WriteL LDA dly JSR WriteLB LDA #Locs STA IR0+1 JSR WriteL LDY #0 LDA} (pp),y SEC sbc #208 JSR WriteLB?FI22 LDA Stick0 STA dly LDA keyp CMP #255 BEQ ?mst CMP #192 BCS ?cl AND #63 CMP} #60 BEQ ?cl CMP #39 BNE ?OD?cl LDA #255 STA keyp?mst INC dlacc BNE ?mstr JSR DispDng LDA 704 CLC ADC #16 BNE ??}?st LDA #16???st STA 704 LDA dly;has 256 delay of DispDng CMP #15 BNE ?OD?mstr LDA Strig0 BNE ?FI22?OD LDA keyp CM}P #33 BEQ ?THEN LDA Strig0 BNE ?nup?THEN LDX icn CPX #22 BCC ?ToV TXA CLC ADC #208-22 BNE ?pp?ToV LDA ToV,X?pp }LDY #0 STA (pp),Y LDA #255 STA keyp?nup LDA keyp CMP #255 BEQ ?nky LDA #0 STA 702 STA 694 JSR GetK STA dlk JSR K}eyCore CMP #255 BNE ???n JSR ClrL2 LDY icnn LDA icnt,y STA icn LDA #255 RTS???n CMP #15 BCS ???no STA dly???no }LDA md CMP #2 BEQ ??eq2 JSR ClrL2 LDY icnn LDA icnt,Y STA icn LDA #0 RTS??eq2 LDA dlk CMP #'a BNE ?kpr DEC xx B}PL ?nky LDA #7 STA xx BNE ?nky?kpr CMP #'p BNE ?z JSR DPeer JMP ?nky?z CMP #'z BNE ?nky INC xx LDA xx CMP #8 BN}E ?nky LDA #0 STA xx?nky LDA dly JSR DoJoy CLC LDA rx ADC gxx CMP #8 BNE ?E255 LDA #0 BEQ ?FIrx?E255 CMP #255 }BNE ?FIrx LDA #7?FIrx STA rx CLC LDA ry ADC gyy CMP #8 BNE ?F255 LDA #0 BEQ ?FIry?F255 CMP #255 BNE ?FIry LDA #}7?FIry STA ry LDA #0 STA consol STA 77 JMP ?DLOOPMd1xy LDA IR0 CMP #5 BEQ ?@IR1 CLC ADC IR2 STA IR0 BMI ?IR0@2}55 CMP #11 BNE ?@EX LDA #10 STA IR0 BNE ?@EX?IR0@255 LDA #0 STA IR0 BEQ ?@EX?@IR1 LDA IR1 CLC ADC IR2 STA IR1 }BMI ??IR1@255 CMP #32-10 BNE ?@EX LDA #32-11 STA IR1 INC IR0 BNE ?@EX??IR1@255 LDA #0 STA IR1 DEC IR0?@EX RTS .L}OCALLOOP LDA #4 STA mx STA my LDA #0 STA xx STA yy LDA #5 STA rx STA ry JSR GetBlRELOOP CLC LDA xx ADC rx ST}A i LDA yy CLC ADC ry JSR ClcSc LDA Ir0 STA pp LDA Ir0+1 STA pp+1 LDA sic BEQ ?NShowPer JSR ShowPer?NShowPer LDA} #0 STA crmd JSR PosCur LDA xx STA i LDA yy STA j JSR Display JSR Inf LDA #0 STA mlacc?DO? LDA Stick0 STA mly }LDA Strig0 STA mlk INC mlacc BNE ?UNTIL LDA xx STA i LDA yy STA j JSR Display?UNTIL LDA mly CMP #15 BCC ?OD LDA }keyp CMP #255 BNE ?OD LDA mlk BNE ?DO??OD LDA mlk BEQ ??Y LDA keyp CMP #33 BNE ??N??Y LDA #255 STA keyp LDA sic} BEQ ?ELSE? LDA md CMP #1 BNE ?JMP??N JSR EditPe?JMP??N JMP ??N?ELSE? LDY #0 LDA icn STA (pp),Y??N LDA keyp CMP #}255 BNE ?@IF JMP ?@FI?@IF CMP #192 BCS ?rkp AND #63 CMP #60 BEQ ?rkp CMP #39 BNE ?nrkp?rkp LDA #30+128 STA keyp?}nrkp LDA #0 STA 702 STA 694 JSR GetK STA mlk LDA TextMode BEQ ?ELSE1 LDA mlk CMP #' BNE ?ELSE2 LDA #0 STA TextMo}de LDX #<[scadr+38+18*320] STX gsc LDX #>[scadr+38+18*320] STX gsc+1 JSR WriteOO JMP ?@FI?ELSE2 CMP #97 BCC ??gO1 S}BC #32??gO1 LDY #0 CLC ADC #31 STA (pp),Y LDA #7 STA mly JMP ?@FI?ELSE1 LDA md BNE ?EXIT LDA mlk CMP #'\ BNE ?r}t DEC mx JMP ?MD?rt CMP #'^ BNE ?up INC mx JMP ?MD?up CMP #'_ BNE ?dn DEC my JMP ?MD?dn CMP #'| BNE ?EXIT INC my}?MD LDA mx AND #15 STA mx LDA my AND #15 STA my JSR PutBl JSR GetBl?EXIT LDA mlk JSR KeyCore CMP #255 BNE ?c253} JMP Loop?c253 CMP #253 BNE ?c15 JSR DngLoop CMP #255 BNE ?c15 JMP Loop?c15 CMP #15 BCS ?kCt STA mly?kCt LDA mlk} CMP #' BNE ?kcol LDA #1 STA TextMode LDX #<[scadr+38+18*320] STX gsc LDX #>[scadr+38+18*320] STX gsc+1 JSR WriteOO} JMP ?@FI?kcol CMP #'; BEQ ?yadd CMP #': BNE ?kt LDA #255 BNE ?dmfg?yadd LDA #1?dmfg CLC ADC icnn CMP #255 BEQ} ??ct3 CMP #4 BNE ??strit LDA #0 BEQ ??strit??ct3 LDA #3??strit PHA JSR Iicnn PLA STA icnn TAY LDA icnt,Y STA i}cn JSR Iicnn JMP ?@FI?kt CMP #'t BEQ ?dt CMP #'T BNE ?kaz?dt LDA sic BEQ ?Okt LDA Ptyp CMP #2 BNE ?Okt LDA md }CMP #4 BNE ?Okt LDA mlk CMP #'t BNE ?ktE INC Ttyp LDA Ttyp CMP #3 BNE ?Ckt LDA #0 STA Ttyp BEQ ?Ckt?ktE DEC Ttyp} BPL ?Ckt LDA #2 STA Ttyp?Ckt JSR SelPer?Okt JMP ?@FIperT .BYTE 8,16,4PerTm1 .BYTE 7,15,3?kaz CMP #'a BEQ ?az CMP} #'z BEQ ?az JMP ?kr?az LDA sic BNE ?azok JMP ?Oaz?azok LDA mlk CMP #'a BEQ ?NEaz JMP ?Eaz?NEaz INC per LDA md C}MP #1 BNE ?Eaz3 LDA per CMP #32 BNE ?Eoo LDY #31 LDA Pe,Y BEQ ?SetPr DEY?_l1 LDA Pe,Y BEQ ?SetPr DEY BNE ?_l1?S}etPr STY per JMP ?Caz?Eaz3 CMP #3 BNE ?Eaz4 LDA Ptyp BNE ?EIaz LDA per CMP #8 BNE ?EIaz LDA #0 STA per LDA #1 ST}A Ptyp JMP ?Caz?EIaz LDA Ptyp CMP #1 BNE ?JCaz LDA per CMP #16 BNE ?JCaz LDA #0 STA Ptyp STA per?JCaz JMP ?Caz?E}az4 CMP #4 BNE ?Eoo LDY Ptyp LDA perT,Y CMP per BNE ?Eoo INC Ptyp LDA Ptyp CMP #3 BNE ?@nt3 LDA #0 STA Ptyp?@nt3} LDA #0 STA per?Eoo JMP ?Caz?Eaz DEC per LDA md CMP #1 BNE ?p255? LDA per AND #31 STA per TAY LDA Pe+1,Y BNE ?J}JCaz LDA #31 STA per?JJCaz JMP ?Caz?p255? LDA per BPL ?Caz LDA md CMP #3 BNE ?md@4? LDA #1 EOR Ptyp STA Ptyp BE}Q ?per7 LDA #15 BNE ?staper?per7 LDA #7?staper STA per JMP ?Caz?md@4? CMP #4 BNE ?Caz LDA Ptyp BNE ?npt0 LDA #3 }STA Ptyp?npt0 DEC Ptyp LDY Ptyp LDA perTm1,Y STA per?Caz LDA md CMP #3 BEQ ?GSP JSR HidePe JSR ShowPe?GSP JSR SelP}er?Oaz JMP ?@FI?kr CMP #'r BNE ?ks INC s_dir LDA s_dir AND #3 STA s_dir LDA Ptyp BNE ?gO LDA md CMP #4 BNE ?gO} JSR SelPer?gO JMP ?@FI?ks CMP #'s BEQ ?Dks JMP ?kp?Dks LDA md CMP #1 BEQ ?Doks CMP #3 BEQ ?Doks CMP #4 BEQ ?Dok}s JMP ?Oks?Doks LDA #<[scadr+29+17*320] STA gsc LDA #>[scadr+29+17*320] STA gsc+1 LDA sic EOR #1 STA sic BEQ ?ELs@0} JSR WriteOO LDA md CMP #1 BNE ??3 LDA #31 STA per JSR ShowPe JMP ??Nl??3 CMP #3 BNE ??4 LDA #0 STA Per STA Pty}p BEQ ??Nl??4 CMP #4 BNE ??Nl LDA #0 STA Per STA Ptyp STA s_dir LDY #64??LP@ LDA Pe,Y BNE ??LP@x LDA Pe+8,Y BNE} ??LP@x TYA CLC ADC #16 TAY INC s_dir LDA s_dir CMP #3 BNE ??LP@??LP@x JSR ShowPe??Nl JSR SelPer JMP ?Oks?ELs@0} JSR UComSL?Oks JMP ?@FI?kp CMP #'p BNE ?kv JSR Peer?kv CMP #'v BNE ?@FI LDA vis EOR #1 STA vis LDX #<[scadr+29+1}8*320] STX gsc LDX #>[scadr+29+18*320] STX gsc+1 JSR WriteOO?@FI LDA mly CMP #15 BNE ?neq15 JMP ?nt34?neq15 JSR DoJ}oy LDA md BNE ?nt0;mode 0 LDA xx CLC ADC gxx BMI ?xx@255 CMP #32-10 BEQ ?xx@22 STA xx JMP ?xx@ok?xx@22 LDA #16-10} STA xx INC mx LDA mx AND #15 BPL ?mx@?xx@255 LDA #15 STA xx DEC mx BPL ?mxok?mx@ STA mx?mxok JSR PutBl JSR GetB}l?xx@ok CLC LDA yy ADC gyy BMI ?yy@255 CMP #32-10 BEQ ?yy@22 STA yy JMP ?nt34?yy@22 LDA #16-10 STA yy inc my LD}A my AND #15 BPL ?my@?yy@255 LDA #15 STA yy DEC my BPL ?my@255?my@ STA my?my@255 JSR PutBl JSR GetBl JMP ?nt34?n}t0 CMP #1;mode 1 BNE ?nt1 LDA rx STA IR0 LDA xx STA IR1 LDA gxx STA IR2 JSR Md1xy LDA IR0 STA rx LDA IR1 STA xx }LDA ry STA IR0 LDA yy STA IR1 LDA gyy STA IR2 JSR Md1xy LDA IR0 STA ry LDA IR1 STA yy JMP ?nt34?nt1 CMP #3 BEQ ?}is3;mode 3 or 4 CMP #4 BNE ?nt34?is3 CLC LDA rx ADC gxx BPL ?11 LDA #10?11 CMP #11 BNE ?n11 LDA #0?n11 STA rx CL}C LDA ry ADC gyy BPL ??11 LDA #10??11 CMP #11 BNE ??n11 LDA #0??n11 STA ry?nt34 LDA #0 STA CONSOL STA 77 JMP R}ELOOPSTART JSR INIT JMP LOOP *=736 .WORD START .END1 LDA #0??n11 STA ry?nt34 LDA #0 STA CONSOL STA 77 JMP R<;;Ultima IV overview program;;This program shows an overview of;the Ultima IV Brittannia map using;Graphics 15. Only the } gradation of;either water or land can be seen at;one time.;;The program assumes BRIT.MAP on the;default drive.;BYTE k }eyp=764,dma=559,dma2=54272,w1,w2,w3CARD dl=560BYTE ARRAY Sc(512),co=708,ndl=40192,bdl=[112 112 112],edl=[65 0 93],mdl=[7 }8 0 93]PROC mkdl()dl=ndlMoveBlock(ndl,bdl,3)MoveBlock(ndl+3,mdl,3)MoveBlock(ndl+6,ndl+3,573)MoveBlock(ndl+579,edl,3)R }ETURNPROC Disp(BYTE x,y)CARD POINTER qCARD pBYTE ip=23808+x+y*64q=ndl+4FOR i=0 TO 191 DO q^=p p==+64 q==+3ODRETURN }PROC CIO=$E456(BYTE A,BYTE X)CARD FUNC Burst(BYTE chan,mode,CARD addr,buflen)TYPE IOCB=[BYTE id,num,cmd,statCARD badr, }padr,blenBYTE a1,a2,a3,a4,a5,a6]IOCB POINTER iptrchan==&$07iptr=$340+(chan LSH 4)iptr.cmd=modeiptr.blen=bufleniptr.bad }r=addrCIO(0,chan LSH 4)RETURN(iptr.blen)CARD FUNC BGet(BYTE chan CARD addr,len)CARD temptemp=Burst(chan,7,addr,len)RET }URN(temp)PROC Init()BYTE kGraphics(0)Print("and or ater gradient?")w1=0DO k=GetD(7) IF (k='L) OR (k='l) THEN w1= }3 w2=5 w3=8 ELSEIF (k='w) OR (k='W) THEN w1=1 w2=2 w3=3 FIUNTIL w1#0 ODGraphics(15+16)mkdl()dma=0 dma2=0IF w }1=3 THEN co^=6 co(1)=10 co(2)=14 co(4)=128ELSE co^=128+32+4 co(1)=128+16+2 co(2)=0 co(4)=128FIRETURNPROC Display }(BYTE ux,uy)BYTE xp,yp,f,bt,qq,g,bbBYTE POINTER scp,lkCARD ooscp,oscp,q,pClose(1)Open(1,"D:BRIT.MAP",4,0)scp=93*256FOR } yp=0 TO 15 DO ooscp=scp+1024;16*64 FOR xp=0 TO 15 DO oscp=scp+4 q=(xp+yp*16)*256 Point(1,q,0) BGet(1,Sc,256) lk= }sc f=0 DO FOR qq=0 TO 3 DO bt=0 FOR g=0 TO 3 DO bb=lk^ IF bb4extmodetoggle}^_iconboxes RRRRRRRRRR3howitemstoggle 3howmode\]3hownitems spacebartrigger%nter%ditmode\]dungeonlev}els'\]4riggertypestriggeroverlay &2otateplayerentrydirection.%37 spacebartrigger,eave%dit-ode%$elcur }rentitemandpullothersup%)nvalmodecalculatelogical2ep)cjoystick^_^_oneselection joystick\]\]select  }or #joystick\] trigger\] or icon    >1uit0rogram>,oadcurrenthighlight>3aveascurr }enthighlight>&ile3ectortogglespacebartrigger0laceicon'joystick^_\]onesquareonscreen$tab(ighlightnextit }emwshiftprev((ighlight or wshift or &illwithcurrenticon&ilemodedrivenumber>meanspressco }ntrolkey!9at,T{(Lfv,Un,,,,,,,,,,,-------.........///// )/%rrorž h6ㅠ/ X( R(} +0 &RLKLmL BLVBKDELV (J0RJ0 +0ɛ'i  J0J 3}0`L/D9:BRIT.MAP <1R$ +0Ӆ$ J 30 <1L/@{ % % +0L<1ΩϩR}@{{ 7& % +00 J 30` &M$ +0Ӆ$ J 30L/}{@ % % +0`Ωϩ{@ %{P 7&` ixiIȱI}i'` L.2wy%y% Q(e``y%^y%_ L(^i/^_i_ #$}$$$L' L& 6^_ &e^i@^_i_ɜ`Ȝ} L2ƾ`(Px@h0X|^_ L(y3c8~33933) |3 3 }y3(栥ɰLP38 333*333 3 3(栥L3`D9:*.UFNpppO OB؟O}OA.pppBwA/Ԣ` +0!4!4.013.e433僈4}4 4Ÿß Dž +0腠3J 30LI  % +00J} 30LI +00 J 30 2ȍЅÍЅƅЈ 2 11ɍoԩЩ*/`ɩ¥}  i0iLХ`¥,â $0 eè` %L5} %i ` &{ 5i & 5)) &{ 5i &L5 } eL6L6ơƣƥƧ` )`桱ơ }ɲi`  6 6 6L 666 6ƨ񩠅DȄȄȄ )桅J )楱I}֩K )) )@)?` iy%%i e桩 & &ii'}` @H 7`@P-8 7L7/  &48 7 & 7 &L7L7 }Hp8`(Px@h0X Hp8`(Px@h0X Hp8`(Px@h0X Hp8`(Px@h0X } Hp8`(Px@h0X Hp8`(Px!} !,7BMXcn"}}9 ,}9 9ezz I`x~z9ezz}9 B}9 69#}ezz"Iʥ 9襤 9L::梥 L2:`i 7 & &e:i{:z :i $}::y  :L:xzz&;c8,;3;9-;4;) *; 1;z&;栥ɰ )&;8 L:%} 8Li; )8 :3`ȑ`0% m;% m;% m;(% m;@%H%P%$ )J&} )I`ݭ$`x^_8y'y' h'L=<  ) e L(7'}h%^<%_<i(9^_&8 'i;i;;Lh'y'y'Lh' ; &i(}i{煢i@i ;欽h%=%=楠i'륤i)}L;`Dn:TOWNE.000F_= K0{R % N= %L= % N= % +0``{*} +ΩL= eihΩi 7& 7&` l= `Ll=XBXTXDR>$ą$ K0+}` ,*` > %~ % +0L> %ϩ~ %{ & &,}` /-` > %{ % & +0` %ϩ~{ & & %`-} HΩ Ω iΩiϥRL> C>o ?`Lx& Ω iΩi &iΥi.}ϥR+ C> Lx&`o Lx&?`L>Dn:DUNGEON.000 `8텮? K0{R /}%L>@ % +0Lc@{ iqΩiϩ 7&R` & &i{e`< @ x@0}   L@` 0 x@ ޢ ` @ x1}@` 0 x@`ɐ)`Ʉ`P0 )`!ggr!ttr9es.oĽ uAL'ɀ {A2}L' AL' R(^^`AL'eĝ`^_LR(Pĥ)1)ɀ!Ľ3} ɀ^_LA} ^_LR( `2ep)c-ob3pch -onster 0layer4}0layer 4rigger /verlaynBB X(LnBo|B X( R(^~B 'Ľ` R(^ĥe e@ x@5}B ' AB 'ĽLR(;B X(ĥ@PLCB X(ĥ`h R(`1B X($6}^^^^ eĪ@HL,D)B X(ĥ 0 x@L,D= B X( nBL,D  B7}L,D BLR(`8`8`?Ľ @ x@ ʩ 1D 1D` Ľ8}@P`Ľ`h` eĪ@H`!Ľ 0 x@` eƪ &`Zz9}𤽹E йEйE`ĝ E` : :8x:}LFLxF )?<'L_E - AL_E=|_ LFHh *L_E*潥;} EL_E+ ƽf!Ľ WA`^_ R(L_Eɜ A~i i @LFx  A<}LF  ALF潥 ELF ƽ EL_EЭLID@@@@@@ =} 0X`8$$$%%%%%JJJJGWGGXGyFyF e櫢i(`,BXn4J`v>}ylG}yGLbHLTH}GLTHyGhylG}yGB?}e)eie) e歠 &GE)0LG0LGylG}yG@}`}~ P&JfJfi{e88 G?}H.}H#ylG}yGA} LHé}LHi ` &G P&`S: +0` +0iB}I` J 30` +0`RII lI䅠///X (/'XȢɛ 8 XRl '9oucantsaveC}curmodeasselmode䅠I X(LmLffn$J'JL&}^_L*J  A &L?J͠+ `*D}`-`= `cLK z6K셠J f(> x& x@{ & & &`#onvE}ertto3creen9or. loadsave LKR LJK (LK 0 &` z6  8?LK =LK F} 8?LK ? P& <` ?LK  ? &`LL K (LmL LJWźL J z6 T1 hG}6LmLźL J 8?LmLźL J >LmLźL J 8?LmLźL J ?LmLźL J ?LmLL JH} ? &`!&illwithcurrenticon9or. FZsL f(G';JJi{)Jjj$?LL{|}~I} @ &`.泥 &`,Ƴ%`]i  &`[8 %`J} z6 lIl ɟ% 2澥ƾ 2`><}ɝR  Iiͥ$ ?K}J &`e͙ L2`1:p!r! )ߑ` I`hH *`)))L}`)``,xe^^_`^_ L( sN L(LN ee L( sN ee L(>^_S!X! h'M}irNoN &LNy'y' &^_o!q!Lh' ,ocally & g5 < }N & ei{iN} ;c$z$ X(I8Ѕ  ) e|B ' R(O '8 R(x )?<O}'$ <i­!i$d cJ &`P} &`a ƶ p HLPz 涥 6 THEN b=pcnt(smd) gsc==+303 IF a>cmax(smd) THEN WriteCl(FiEx) ELSE WriteCl(b(a)) FIFIRETURNPROC Mw}enu()CARD ARRAY l(1)gsc=scadr+22FOR i=0 TO 21 DO FGet(l,1) WriteNA(l^) gsc==+320ODFOR i=0 TO 6 DO cnt(i)=0 ODmd=0 icx}n=0 sf=0Defs()pcnt(1)=bspcnt(2)=tmpcnt(3)=tspcnt(4)=dmpcnt(5)=dsFOR smd=1 TO 6 DO DispMenu()ODsmd=0RETURNPROC Doy}Icn()BYTE POINTER p,q,cgsc=scadr+5795WriteB(icn)c=gsc+320p=Pa+icn q=p+4096FOR i=0 TO 15 DO c^=p^ c(1)=q^ c==+40 p==+2z}56 q==+256ODRETURNPROC Init()Close(6)Graphics(24)dma=0 dma2=0;start of data=33840-16;4K data reached at 36K(76 gr0 s{}can lines)Zero(33602,7358)dl=33602scadr=33824;lda #112 ldy #2 sta 33602,y dey bpl rep[169 112 160 2 153 33602 136 16 250|}169 79 141 33605 165 88 141 33606165 89 141 33607 160 90 169 15153 33608 153 33699 136 16 247169 79 141 33683 169 0 141 3}}3684169 144 141 33685 169 66 141 33785169 176 141 33786 169 159 141 33787169 2 141 33788 169 65 141 33789173 560 141 3379~}0 173 561 141 33791];Close(7);Open(7,"K:",4,0)bg=0 TextMode=0fg=12Zero(Pe,256) sic=0Close(1)Open(1,"D:*.UFN",4,0)BGet}(1,Pa,8192)Close(1);BRIT.MAP;should be on a separate drive, if;not a Ramdisk. I used D9:, my Ramdisk.Open(1,"D9:BRIT.MAP}",12,0)gsc=L1WriteL("X:")gsc==+4WriteL("Y:")Menu()Inv_(0)dvn=49 crmd=0 ocrmd=1pmb=4 vdel=0Zero(1536,128);p0FOR i=0 }TO 3 DO px(i)=0 ODoyv=0pc0=16ps0=0gprior=1gractl=2Ttyp=0 vis=0dma=42RETURNPROC PosCur()IF ocrmd#crmd THEN ocrmd=cr}md ox=255 oy=255 FIIF ox#rx THEN IF crmd=0 THEN;p0x=48+rx LSH 3 ox=rx[173 rx 141 ox 10 10 10 24 105 48 141 p0x] ELSE;p0x=}48+28+rx LSH 2 ox=rx[173 rx 141 ox 10 10 24 105 76 141 p0x] FIFIIF oy=ry THEN RETURN FIIF crmd=0 THEN[169 255 133 $A0 1}69 8 133 $A1 169 0133 $A2 169 16 133 $A3]ELSE[169 240 133 $A0 169 4 133 $A1169 44 133 $A3 169 255 133 $A2]FI;ldy oyv ld}x #8 lda #0 sta 1536,y iny[172 oyv 162 8 169 0 153 1536 200;dex bne rep lda ry sta oy asla asla202 208 249 173 ry 141 oy 1}0 10;bit $A2 bmi 1 asla adc $A336 $A2 48 1 10 101 $A3;sta oyv tay lda $A0 ldx $A1141 oyv 168 165 $A0 166 $A1;sta 1536,y }iny dex bne rep153 1536 200 202 208 24996]RETURNPROC GetBl()CARD q,pq=(mx+my*16)*256 oq=qPoint(1,q,0)p=0DO BGet(1,}Sc+p,16) p==+32UNTIL p=512 ODPoint(1,q+4096,0)DO BGet(1,Sc+p,16) p==+32UNTIL p=1024 ODPoint(1,q+256,0)p=16DO BGet(}1,Sc+p,16) p==+32UNTIL p=528 ODPoint(1,q+4096+256,0)DO BGet(1,Sc+p,16) p==+32UNTIL p=1040 ODRETURNPROC PutBl()CARD} pPoint(1,oq,0)p=0DO BPut(1,Sc+p,16) p==+32UNTIL p=512 ODPoint(1,oq+4096,0)DO BPut(1,Sc+p,16) p==+32UNTIL p=1024 O}DPoint(1,oq+256,0)p=16DO BPut(1,Sc+p,16) p==+32UNTIL p=528 ODPoint(1,oq+4096+256,0)DO BPut(1,Sc+p,16) p==+32UNTIL }p=1040 ODRETURNPROC Rot(BYTE w)BYTE POINTER p,rBYTE t,q,up=pa+w+3840r=p+4096t=p^u=r^q=0DO p==-256 r==-256 p(256})=p^ r(256)=r^ q==+1UNTIL q=15 ODp^=t r^=uRETURNPROC Flag(BYTE w);;BYTE POINTER p;;BYTE t;;IF (rnd&3)#0 THEN;; IF }w=14 THEN;; p=pa+w+256;; ELSEIF (w=16) OR (w=18) THEN;; p=pa+w+512;; ELSEIF w=11 THEN;; p=pa+w+4096+256;; ELSE;towne};; p=pa+w+768;; FI;; t=p^;; p^=p(256);; p(256)=t;; IF (w=16) OR (w=18) THEN;; t=p($1000) p($1000)=p($1100);; p($11}00)=t;; FI;;FIRETURNPROC DoChr();;BYTE POINTER r,s,t,u;;BYTE qRot(0)Rot(1)Rot(2)Rot(76);;Flag(14);;Flag(10);;Fl}ag(11);;Flag(16);;Flag(18);;r=Pa+68 s=Pa+70 t=Pa+69 u=Pa+71;;FOR i=0 TO 31 DO;; q=rnd&170;; r^=q r==+256;; s^=q RSH 1 }s==+256;; t^=q%(q RSH 1)%(rnd&170) t==+256;; u^==!255 u==+256;;OD;;r=Pa+75+$700;;FOR i=0 TO 5 DO;; r^==&224%(rnd&21);;} r(4096)==&63%(rnd&64);; r==+256;;ODRETURNPROC CPlot(BYTE x,y,q,o);;BYTE POINTER gp,cp;;gp=x LSH 1+m640(y)+o+scadr;;c}p=q cp==LSH 3+57344 q=8;;DO gp^=cp^ gp==+40 cp==+1 q==-1 UNTIL q=0 ODRETURNPROC DoShowPe(BYTE ofs);;ofs==LSH 4;;i=7;;D}O;; CPlot(Pe(i+64+ofs),Pe(i+72+ofs),i+16,0);; i==-1;;UNTIL i=255 ODRETURNPROC ShowM3();;i=15;;DO;; CPlot(Pe(i+64),Pe}(i+80),45,1);'M-32;; i==-1;;UNTIL i=255 OD;;DoShowPe(2)RETURNPROC ShowM4();;BYTE p;;IF Ptyp=2 THEN;; p=per LSH 2 i=P}e(p+1);; CPlot(i RSH 4,i&15,52,1);'T-32;; i=Pe(p+2);; CPlot(i RSH 4,i&15,17,0);; i=Pe(p+3);; CPlot(i RSH 4,i&15,18,0);;}ELSE;; DoShowPe(s_dir);N=0,E=1,S=2,W=3;;FIRETURNMODULEBYTE POINTER zt,zfBYTE ARRAY hbuf(242),hdx=[$FF 0 1 1 1 0 $FF $}FF $FF 0],hdy=[$FF $FF $FF 0 1 1 1 0 $FF $FF]PROC Spike(BYTE d,x,y)BYTE p,tmpDO x==+hdx(d) y==+hdy(d) IF (x>10) OR (y>}10) THEN RETURN FI p=x+y*11 tmp=zf(p) zt(p)=tmp IF (tmp=127) OR (tmp=6) OR (tmp=8) OR (tmp=73) THEN RETURN FIODP}ROC Vis_()BYTE ax,ay,dr,p,tmp,tx,tyzt=hbufzf=hbuf+121SetBlock(zt,121,126)dr=1p=rx+ry*11zt(p)=zf(p)DO ax=rx ay=ry DO} ax==+hdx(dr) ay==+hdy(dr) IF (ax>10) OR (ay>10) THEN EXIT FI p=ax+ay*11 tmp=zf(p) zt(p)=tmp IF (tmp=127) OR (tmp}=6) OR (tmp=8) OR (tmp=73) THEN EXIT FI Spike(dr-1,ax,ay) Spike(dr+1,ax,ay) OD dr==+1UNTIL dr=9 ODRETURN;xp=$F}E,yp=$FF;^scp=$FC,$FD;^gt=$FA,$FB;^lk=$F8,$F9;^hb=$F6,$F7;ooscp=$F4,$F5;oscp=$F2,$F3;hPa=$F0,$F1;gt4096=$EEPROC Disp}lay(BYTE ux,uy)BYTE xp=$FE,yp=$FFCARD scp=$FC,gt=$FA,lk=$F8,hPa=$F0,gt4096=$EECARD hb=$F6,ooscp=$F4,oscp=$F2[173 704 24 }105 16 240 251 141 704]DoChr()lk=uy lk==LSH 5lk==+Sc+uxhb=hbuf+121;copy into 11*11 hbuf;yp=11[162 11]DO;xp=11[160 1}0] DO;hb(xp)=lk(xp) xp==-1 UNTIL xp=0[177 $F8 145 $F6 136 48 3] OD;lk==+32 hb==+11 yp==-1 UNTIL yp=0[24 165 $F8 105 32 }133 $F8 144 2 230 $F9 24 165 $F6 105 11 133 $F6 144 2 230 $F7 202 240 3]ODIF ((md=0) OR (md=1)) AND (vis=1) THEN ;Do Vis}ibility check Vis_()ELSE MoveBlock(hbuf,hbuf+121,121)FI;Display on ScreenhPa=Pascp=scadrooscp=scplk=hbuf;yp=11[169} 11 133 $FF 160 0]DO; xp=11; oscp=scp; ooscp==+640[169 11 133 $FE165 $FC 133 $F2 165 $FD 133 $F324 165 $F4 105 128 133} $F4 165 $F5105 2 133 $F5] DO; gt=Pa+lk^; lk==+1 en=16; oscp==+2[165 $F0 113 $F8 133 $FA133 $EE 165 $F1 105 0 133 $}FB105 16 133 $EF230 $F8 208 2 230 $F9 162 16165 $F2 105 2 133 $F2 165 $F3 105 0133 $F3] DO; scp^=gt^; scp(1)=gt(4}096); gt==+256 gt4096==+256; scp==+40; en==-1; UNTIL en=0 OD[177 $FA 145 $FC177 $EE 200 145 $FC 136230 $EF 230 }$FB165 $FC 105 40 133 $FC 165 $FD105 0 133 $FD202 240 3] OD; scp=oscp; xp==-1 UNTIL xp=0 OD[165 $F2 133 $FC 165 $F3} 133 $FD198 $FE 240 3] OD; scp=ooscp; yp==-1 UNTIL yp=0 OD[165 $F4 133 $FC 165 $F5 133 $FD198 $FF 240 3]ODIF md=3 TH}EN IF sic THEN ShowM3() FIELSEIF md=4 THEN IF sic THEN ShowM4() FIFIDoIcn()RETURNPROC M_Fount(BYTE POINTER ad)};;BYTE h,i;;h=ad(5) i=5;;DO ad(i)=ad(i-1) i==-1 UNTIL i=0 OD;;ad^=hRETURNPROC Mod_()BYTE POINTER q,r,s,tBYTE i,h;;M_}Fount(gf_);;M_Fount(pf_);;M_Fount(pf2_);;M_Fount(cf_)q=poi_ r=lig_ s=fir_ t=sl_FOR i=0 TO 7 DO h=rnd&170 q^=h q==+1 s}^=h RSH 1 s==+1 r^=h%(h RSH 1)%(rnd&170) r==+1 t^==!255 t==+1ODRETURN BYTE FUNC Ind_(BYTE f)BYTE ii=0DO IF ToV(i)=f} THEN RETURN(i) FI i==+1UNTIL i=23 ODRETURN(22)CARD FUNC chad(BYTE f)IF f=240 THEN RETURN(wa_)ELSEIF f=0 THEN RETUR}N(57344);' ELSEIF f=224 THEN RETURN(sd_)ELSEIF f=32 THEN RETURN(dn_)ELSEIF f=16 THEN RETURN(up_)ELSEIF f=48 THEN RETURN(u}d_)ELSEIF f=128 THEN RETURN(57784);'WELSEIF f=129 THEN RETURN(57744);'RELSEIF f=160 THEN RETURN(poi_)ELSEIF f=161 THEN RE}TURN(lig_)ELSEIF f=162 THEN RETURN(fir_)ELSEIF f=163 THEN RETURN(sl_)ELSEIF f=64 THEN RETURN(57376);'$ELSEIF f=192 THEN R}ETURN(er_)ELSEIF f=112 THEN RETURN(58016);'ELSEIF f=142 THEN RETURN(57728);'PELSEIF f=144 THEN RETURN(noe_)ELSEIF f=145 }THEN RETURN(gf_)ELSEIF f=146 THEN RETURN(pf_)ELSEIF f=147 THEN RETURN(cf_)ELSEIF f=148 THEN RETURN(pf2_)ELSEIF f=176 THEN} RETURN(alt_)ELSERETURN(rm_)FIPROC DoDngIcn()BYTE ARRAY dd="00"BYTE POINTER c,pBYTE agsc=scadr+5795IF icn<22 THEN }Write(" ")ELSE a=icn-22+cnt(4) LSH 4 IF cnt(4)=7 THEN a==+(xx RSH 1)LSH 4 FI WriteB(a)FIc=gsc+320a=icn IF a>22 TH}EN a=22 FIp=chad(ToV(a))FOR i=0 TO 7 DO c^=p^ c(1)=0 c==+40 p==+1ODIF a=22 THEN gsc=c a=icn-22 dd(1)=a/10+48 dd(2)=}a MOD 10+48 Write(dd)ELSE FOR i=0 TO 7 DO c^=0 c(1)=0 c==+40 ODFIRETURNPROC DispDng()BYTE POINTER f,ot,tCARD tt}=$CC,c=$CABYTE xp,yp,pyMod_()f=Sc+xx*64ot=scadr+2247FOR yp=0 TO 7 DO t=ot ot==+320 FOR xp=0 TO 7 DO c=chad(f(xp)) } tt=t; FOR py=0 TO 7 DO; t(py*40)=c(py); OD;c=$CA,$CB;tt=$CC,$CD;ldy #0 lda ($CA),y sta ($CC),y[160 0 177 $CA 145 $}CC;clc lda $CC adc #39 sta $CC bcc 224 165 $CC 105 39 133 $CC 144 2;inc $CD iny cpy #8 bne rep230 $CD 200 192 8 208 236]} t==+1 OD f==+8ODDoDngicn()RETURNPROC RWTowne()IF sf=1 THEN;; DoOpen("Dn:TOWNE.000",cnt(2));; IF Cmd='R THEN;; B}Get(2,Sc,1024);; BGet(2,Pe,256);; ELSE;; BPut(2,Sc,1024);; BPut(2,Pe,256);; FI;; Close(2)ELSE IF cnt(2)>16 THEN RE}TURN FI sc_=Sc IF cnt(2)=16 THEN RWSec(555,8) ELSE RWSec(360+cnt(2)*10,8) FI sc_=Pe RWSec(Sec,2)FIRETURNPROC Re}adTowne()RWTowne()mx=0 my=0 xx=11 yy=11 rx=5 ry=5RETURNPROC WriteTowne();;RWTowne()RETURNPROC RdSc(BYTE b)IF sf=0 T}HEN IF cnt(b)>cmax(b) THEN RETURN FIFIIF sf THEN IF b=1 THEN Scs(4)='B ELSEIF b=3 THEN Scs(4)='T ELSEIF b=5 THEN }Scs(4)='D ELSEIF b=6 THEN Scs(4)='R FI DoOpen(Scs,cnt(b)) BGet(2,Pe,128) sc_=Sc+768 BGet(2,sc_,128) Close(2)ELSE s}c_=Pe Io() Sec==+1 sc_=Sc+768 Io()FIi=0DO MoveBlock(Sc+i*32,sc_+i*11,11) i==+1UNTIL i=11 ODmx=0 my=0 xx=0 yy=0 rx=5} ry=5RETURNPROC WrSc(BYTE b);;IF sf=0 THEN;; IF cnt(b)>cmax(b) THEN RETURN FI;;FI;;IF sf THEN;; IF b=1 THEN;; Scs(4})='B;; ELSEIF b=3 THEN;; Scs(4)='T;; ELSEIF b=5 THEN;; Scs(4)='D;; ELSEIF b=6 THEN;; Scs(4)='R;; FI;; DoOpen(Scs,c}nt(b));; BPut(2,Pe,128);; FOR i=0 TO 10 DO;; BPut(2,Sc+i*32,11);; OD;; Close(2);;ELSE;; sc_=Pe;; Io() Sec==+1 sc_=Sc}+768;; i=0;; DO;; MoveBlock(sc_+i*11,Sc+i*32,11);; i==+1;; UNTIL i=11 OD;; Io();;FIRETURNPROC RWScreen(BYTE b)BY}TE aa=cnt(b)IF a=13 THEN Sec=584ELSEIF a=14 THEN Sec=681ELSE Sec=529+a*2FIIF Cmd='R THEN RdSc(b) i=111 DO IF Pe}(i)>10 THEN Zero(Pe,128) FI i==-1 UNTIL i=63 ODELSE WrSc(b)FIRETURNPROC RWDScr(BYTE b,t)BYTE aa=cnt(b)IF t T}HEN IF a=7 THEN Sec=681 ELSE Sec=657+a*2 FIELSE Sec=17+a*2FIIF Cmd='R THEN RdSc(b) IF t=0 THEN i=127 DO I}F Pe(i)>10 THEN Zero(Pe,128) FI i==-1 UNTIL i=31 OD ELSE i=111 DO IF Pe(i)>10 THEN Zero(Pe,128) FI} i==-1 UNTIL i=63 OD FIELSE WrSc(b)FIRETURNPROC RWDng()BYTE ARRAY dngs="Dn:DUNGEON.000"BYTE aa=cnt(4)IF (a>cm}ax(4)) AND (sf=0) THEN RETURN FIIF sf THEN DoOpen(dngs,a) IF Cmd='R THEN BGet(2,Sc,512) ELSE BPut(2,Sc,512) FI Clos}e(2)ELSE sc_=Sc RWSec(625+a LSH 2,4)FIIF Cmd='R THEN rx=0 ry=0 xx=0 ox=255 oy=255FIRETURNINCLUDE "D9:incpe"PROC S}Err()BYTE t20=20WriteL2("You can't save cur mode as sel mode")t20=0DO UNTIL t20=255 ODRETURNBYTE FUNC KeyCore(BYTE} k)BYTE POINTER zBYTE yy=15IF k='+ THEN y=11ELSEIF k='* THEN y=7ELSEIF k='- THEN y=14ELSEIF k='= THEN y=13ELSEIF }k='c THEN IF md=0 THEN PutBl() FI IF (md=0) OR (md=1) THEN IF AskYN(" Convert to Screen(Y or N)?")=1 THEN Zero(Pe,}128) z=xx+yy*32 FOR i=0 TO 10 DO MoveBlock(Sc+i*32,Sc+i*32+z,11) OD mx=0 my=0 xx=0 yy=0 rx=5 ry=5 md=3 FI }FIELSEIF k=' THEN Cmd='R IF (sic#0) AND (md#3) THEN HidePe() FI gsc=scadr+6435 sic=0 ClrL2() Write("ff") IF Press}Ret("load")=1 THEN IF smd=2 THEN;Towne IF md=0 THEN PutBl() FI ReadTowne() md=1 ELSEIF smd=1 THEN;BritSc IF m}d=0 THEN PutBl() FI RWScreen(1) md=3 ELSEIF smd=3 THEN;TownSc IF md=0 THEN PutBl() FI RWScreen(3) md=3 ELS}EIF smd=0 THEN;Brit ReadBrit() md=0 RETURN(255) ElSEIF smd=4 THEN;Dung IF md=0 THEN PutBl() FI RWDng() md}=2 icn=0 ClDisplay() DispDng() RETURN(253) ELSEIF smd=5 THEN;DungSc IF md=0 THEN PutBl() FI RWDScr(5,1) m}d=3 ELSEIF smd=6 THEN;DungRm IF md=0 THEN PutBl() FI RWDScr(6,0) md=4 FI FI ClrL2()ELSEIF k=' THEN IF Press}Ret("save")=1 THEN IF (sic#0) AND (md#3) THEN HidePe() FI gsc=scadr+6435 sic=0 ClrL2() Write("ff") Cmd='W }IF smd=2 THEN;Towne IF md#1 THEN SErr() ELSE WriteTowne() FI ELSEIF smd=1 THEN;BritSc IF md#3 THEN }SErr() ELSE RWScreen(1) FI ELSEIF smd=3 THEN;TownSc IF md#3 THEN SErr() ELSE RWScreen(3) FI EL}SEIF smd=0 THEN;Brit IF md#0 THEN SErr() ELSE PutBl() WriteBrit() GetBl() FI ElSEIF smd=4 THEN;Dun}g IF md#2 THEN SErr() ELSE RWDng() FI ELSEIF smd=5 THEN;DungSc IF md#3 THEN SErr() ELSE RWDS}cr(5,1) FI ELSEIF smd=6 THEN;DungRm IF (md#4) AND (md#3)THEN SErr() ELSE RWDScr(6,0) FI FI FI ClrL2}()ELSEIF k='F THEN IF AskYN(" Fill with current icon (Y or N)?")=1 THEN IF md=2 THEN IF icn<22 THEN SetBlock(sc+6}4*xx,64,ToV(icn)) FI ELSE SetBlock(Sc,1024,icn) FI IF sic THEN ShowPe() FI FI ClrL2()ELSEIF k='. THEN icn==+1} IF md=2 THEN IF icn=38 THEN icn=0 FI FIELSEIF k=', THEN icn==-1 IF md=2 THEN IF icn=255 THEN icn=37 FI FIELSEIF k}='] THEN icn==+20 IF md=2 THEN IF icn>37 THEN icn=0 FI FIELSEIF k='[ THEN icn==-20 IF md=2 THEN IF icn>230 THEN icn}=37 FI FIELSEIF k=' THEN IF md=0 THEN PutBl() FI [169 0 141 53248] Break()ELSEIF (k=') OR (k=') THEN Inv_(smd) IF} k=' THEN smd==+1 IF smd=7 THEN smd=0 FI ELSEIF k=' THEN smd==-1 IF smd=255 THEN smd=6 FI FI Inv_(smd)ELSEIF ((}k='>) OR (k='<)) OR ((k='}) OR (k=')) THEN IF k='> THEN k=1 ELSEIF k='< THEN k=255 ELSEIF k='} THEN IF cnt(smd)<10 }THEN k=-cnt(smd) ELSE k=-10 FI ELSEIF k=' THEN k=10 FI IF smd=0 THEN IF md#0 THEN md=0 RETURN(255) FI} ELSE cnt(smd)==+k IF cnt(smd)=255 THEN cnt(smd)=cmax(smd) FI FI DispMenu()ELSEIF (k>'0) AND (k<='9) THEN dvn=k }z=sof(1) z(7)=dvn+128ELSEIF k=' THEN sf==!1FIRETURN(y)PROC DoJoy(BYTE y)IF (y&1)=0 THEN gyy=-1ELSEIF (y&2)=0 THEN g}yy=1ELSE gyy=0FIIF (y&4)=0 THEN gxx=-1ELSEIF (y&8)=0 THEN gxx=1ELSE gxx=0FIRETURNPROC Inf()gsc=L1+2IF md=2 THE}N WriteLB(rx) gsc==+3 WriteLB(ry)ELSE WriteLB(mx LSH 4+xx+rx) gsc==+3 WriteLB(my LSH 4+yy+ry)FIgsc==+1WriteL(mdn(md}))gsc==+2WriteL(sof(sf))IF md=2 THEN gsc==+1 WriteL("L") tmp^=1 tmp(1)=xx+49 WriteL(tmp)FIRETURNBYTE FUNC DngLoop()}BYTE k,x,y,t20=20,accClrL2()DO crmd=1 PosCur() DispDng() Inf() pp=Sc+rx+ry LSH 3+xx*64 k=Ind_(pp^) WriteL2(dis(k))} IF k=22 THEN y=pp^-208+cnt(4) LSH 4 IF cnt(4)=7 THEN y==+(xx RSH 1)LSH 4 FI WriteL("#") WriteLB(y) WriteL(" L}ocally#") WriteLB(pp^-208) FI DO k=(t20 MOD 15)+1 [173 k 10 10 10 10 141 704] k=keyp&63 IF (keyp#255) AND (k#60) }AND (k#39) THEN EXIT ELSEIF k#255 THEN keyp=255 FI y=Stick0 IF y#15 THEN EXIT FI acc==+1 IF acc=0 THEN DispDn}g() FI UNTIL strig0=0 OD IF (strig0=0) OR (k=33) THEN IF icn>22 THEN pp^=208+icn-22 ELSE pp^=ToV(icn) FI key}p=255 FI IF keyp#255 THEN k=GetD(7) x=KeyCore(k) IF x=255 THEN ClrL2() gsc=L1+30 WriteL(" ") RETURN(255) FI IF x<1}5 THEN y=x FI IF md#2 THEN ClrL2() gsc=L1+30 WriteL(" ") RETURN(0) FI IF k='a THEN xx==-1 IF xx=255 THEN xx=7 FI } ELSEIF k='z THEN xx==+1 IF xx=8 THEN xx=0 FI ELSEIF k='p THEN DPeer() FI FI DoJoy(y) rx==+gxx ry==+gyy IF r}x=8 THEN rx=0 ELSEIF rx=255 THEN rx=7 FI IF ry=8 THEN ry=0 ELSEIF ry=255 THEN ry=7 FI [169 0 141 consol 133 77]ODPROC }Loop()BYTE POINTER zBYTE x,y,acc,kmx=4 my=4xx=0 yy=0rx=5 ry=5GetBl()DO pp=Sc+(yy+ry)*32+xx+rx IF sic THEN ShowPer(}) FI crmd=0 PosCur() Display(xx,yy) Inf() acc=0 DO y=Stick0 k=Strig0 acc==+1 IF acc=0 THEN IF md#2 THEN D}isplay(xx,yy) FI FI UNTIL ((y#15) OR (keyp#255))OR(k=0) OD IF (k=0) OR (keyp=33) THEN keyp=255 IF sic THEN IF m}d=1 THEN EditPe() FI ELSE pp^=icn FI FI IF keyp#255 THEN k=keyp IF (k&63)=60 OR (k&63)=39 THEN keyp=30}+128 FI k=GetD(7) IF TextMode THEN IF k=' THEN TextMode=0 pp=L1+39 pp^=0 ELSE IF k>96 THEN k==-32 FI } pp^=31+k y=7 FI ELSE DO IF md#0 THEN EXIT FI IF k='\ THEN mx==-1 ELSEIF k='^ THEN mx==+1 ELSEIF k}='_ THEN my==-1 ELSEIF k='| THEN my==+1 ELSE EXIT FI IF mx=255 THEN mx=15 ELSEIF mx=16 THEN mx=0 } ELSEIF my=255 THEN my=15 ELSEIF my=16 THEN my=0 FI PutBl() GetBl() EXIT OD x=KeyCore(k) IF x=255 THEN }[104 104] Loop() FI IF x=253 THEN IF DngLoop()=255 THEN [104 104] Loop() FI FI IF x<15 THEN y=x FI I}F k=' THEN TextMode=1 pp=L1+39 pp^='-32 ELSEIF (k='t) OR (k='T) THEN IF (sic#0) AND (Ptyp=2) AND (md=4) THEN IF} k='t THEN Ttyp==+1 IF Ttyp=3 THEN Ttyp=0 FI ELSE Ttyp==-1 IF Ttyp=255 THEN Ttyp=2 FI FI SelP}er() FI ELSEIF (k='a) OR (k='z) THEN IF sic THEN IF k='a THEN per==+1 IF md=1 THEN IF per=32 THEN} i=31 DO IF (Pe(i-1)=0) OR (Pe(i)=0) THEN EXIT FI i==-1 UNTIL i=0 OD } per=i FI ELSEIF md=3 THEN IF (Ptyp=0) AND (per=8) THEN Ptyp=1 per=0 ELSEIF (Ptyp=1) AND (p}er=16) THEN Ptyp=0 per=0 FI ELSEIF md=4 THEN IF (Ptyp=0) AND (per=8) THEN Ptyp=1 per=0 E}LSEIF (Ptyp=1) AND (per=16) THEN Ptyp=2 per=0 ELSEIF (Ptyp=2) AND (per=4) THEN Ptyp=0 per=0 FI } FI ELSE per==-1 IF md=1 THEN IF per=255 THEN per=31 ELSEIF Pe(per+1)=0 THEN per=31 } FI ELSEIF per=255 THEN IF md=3 THEN Ptyp==!1 IF Ptyp THEN per=15 ELSE per=7 } FI ELSEIF md=4 THEN IF Ptyp=0 THEN Ptyp=2 per=3 ELSEIF Ptyp=1 THEN Ptyp=0 per=7 } ELSEIF Ptyp=2 THEN Ptyp=1 per=15 FI FI FI FI IF md#3 THEN HidePe() ShowPe() FI } SelPer() FI ELSEIF k='r THEN s_dir==+1 IF s_dir=4 THEN s_dir=0 FI IF (md=4) AND (Ptyp=0) THEN SelPer() F}I ELSEIF k='v THEN Vis==!1 pp=L1+38 pp^=('-32)*Vis ELSEIF k='s THEN IF (md=1) OR (md=3) OR (md=4) THEN gsc= }scadr+6435 sic==!1 IF sic THEN Write("n ") IF md=1 THEN Per=31 ShowPe() SelPer() ELS }EIF md=3 THEN Per=0 Ptyp=0 SelPer() ELSEIF md=4 THEN Per=0 Ptyp=0 i=64 s_dir=0 DO I }F (Pe(i)#0) OR (Pe(i+8)#0) THEN EXIT FI i==+16 s_dir==+1 UNTIL s_dir=3 OD ShowPe() Se }lPer() FI ELSE Write("ff") ClrL2() IF md#3 THEN HidePe() FI FI FI ELSEIF k='p THE }N Peer() FI FI FI IF y#15 THEN DoJoy(y) IF md=0 THEN xx==+gxx yy==+gyy IF xx=32-10 THEN xx=16-10 mx==+}1 IF mx=16 THEN mx=0 FI PutBl() GetBl() ELSEIF xx=255 THEN xx=15 mx==-1 IF mx=255 THEN m}x=15 FI PutBl() GetBl() FI IF yy=32-10 THEN yy=16-10 my==+1 IF my=16 THEN my=0 FI PutB}l() GetBl() ELSEIF yy=255 THEN yy=15 my==-1 IF my=255 THEN my=15 FI PutBl() GetBl() FI E}LSEIF md=1 THEN IF rx#5 THEN rx==+gxx IF rx=11 THEN rx=10 ELSEIF rx=255 THEN rx=0 FI ELSE xx==+gxx }IF xx=255 THEN xx=0 rx==-1 ELSEIF xx=32-10 THEN xx=32-11 rx==+1 FI FI IF ry#5 THEN ry==+gyy IF ry=11 THEN } ry=10 ELSEIF ry=255 THEN ry=0 FI ELSE yy==+gyy IF yy=255 THEN yy=0 ry==-1 ELSEIF yy=32-1}0 THEN yy=32-11 ry==+1 FI FI ELSEIF md=2 THEN ELSEIF (md=3) OR (md=4) THEN rx==+gxx ry==+gyy IF rx=255} THEN rx=10 ELSEIF rx=11 THEN rx=0 FI IF ry=255 THEN ry=10 ELSEIF ry=11 THEN ry=0 FI FI FI [169 0 141 consol 133} 77]ODRETURNPROC Main()Init()Loop()RETURN255 THEN ry=10 ELSEIF ry=11 THEN ry=0 FI FI FI [169 0 141 consol 1332;UMAP.COM;;Mac65 source code in atascii form; *=$2000;start of entire program;;note the drive numbers!;change these to} something you like.BRIT.MAP .BYTE "D9:BRIT.MAP",155UFN .BYTE "D9:*.UFN",155 .INCLUDE #D:beg.M65CLPe LDA #0 LDY #127}??CLPeL STA Pe,Y DEY BPL ??CLPeL RTSDoPoint LDA #37 STA $342,x LDA Ir3 STA $34C,x LDA IR3+1 STA $34D,x LDA IR4 }STA $34E,x JMP CIO .MACRO POINT LDX #%1*16 JSR DoPoint .ENDMMove11 LDY #0 LDX #11?@M LDA (IR1),y STA (IR0),y IN}Y DEX BNE ?@M RTSIIR0@32 CLC LDA IR0 ADC #32 STA IR0 BCC ?QEX INC IR0+1 CLC?QEX RTSIIR1@32 CLC LDA IR1 ADC} #32 STA IR1 BCC ?xCB INC IR1+1 CLC?xCB RTSIIR@32 JSR IIR0@32 JMP IIR1@32IIR@1132 CLC LDA IR0 ADC #11 STA IR0} BCC ?GIr1 INC IR0+1?GIr1 JMP IIR1@32IIR@3211 JSR IIR0@32 CLC LDA IR1 ADC #11 STA IR1 BCC ?DnII INC IR1+1?DnII C}LC RTS .LOCALSPLT TAX AND #15 TAY TXA LSR A LSR A LSR A LSR A RTS .INCLUDE #D:inc.M65 .MACRO CLOSE LDX #%1}*16 JSR Clos .ENDMIOERs .SBYTE 43,"I/O Error #"IOERROR LDX EStack TXS LDA md CMP smd BNE ??IE JSR GetBl??IE LDA } #IOERs STA IR0+1 JSR WriteL2 LDA sf LDA IR6 JSR WriteLB LDA #255??kyp CMP keyp BEQ ??kyp STA!} keyp Close 2 JSR ClrL2 LDA Cmd CMP #'R BNE ?Jsv JMP LoadEnd?Jsv JMP SaveEndClos lda #12 sta $342,x JMP CIOOpn l"}da #3 STA $342,x LDA #0 STA $34B,x LDA Ir0 STA $344,x LDA Ir0+1 STA $345,x JMP CIO .MACRO OPEN LDX #%1*16 .IF %#}2<32 LDA #%2 .ELSE LDA %2 .ENDIF STA $34A,x JSR Opn .ENDMrw .BYTE 0DoOpen JSR Strr LDA #4 sta rw LDA Cmd CMP $}#'R BEQ ?DoOsk LDA #8 STA rw?DoOsk Close 2 LDY #3?l_p LDA (IR7),Y INY CMP #155 BNE ?l_p DEY DEY LDX #3?REP LDA %}NUMS,X CLC ADC #32 STA (IR7),Y DEY DEX BNE ?REP LDY #1 LDA dvn STA (IR7),Y LDA IR7 STA IR0 LDA IR7+1 STA IR0+1&} Open 2,rw CPY #1 BNE ?JERR RTS?JERR STY IR6 JMP IOERROR .LOCALReadBrit JSR ?FI0 LDA sf BEQ ?RBE LDA dvn STA Br'}it+1 Close 2 LDA #Brit STA IR0+1 Open 2,4 CPY #1 BEQ ??OKRB STY IR6 JSR ?FI0 JMP IOERROR??OK(}RB LDA #64 STA i LDA #Sc STA Ir0+1 LDA #<1024 STA Ir1 LDA #>1024 STA IR1+1?rprb BGET 2 BPUT 1 )}DEC i BNE ?RPRB Close 2 JMP ?FI0?RBE LDA #<17 STA Sec LDA #>17 STA Sec+1 LDA #'R STA Cmd LDA #64 STA i LDA #Sc STA IR0+1 LDA #<1024 STA IR1 LDA #>1024 STA IR1+1?RP1Z LDA #Sc STA sc_+1 LDA #+}8 STA IR7 JSR RWSec BPut 1 DEC i BNE ?RP1Z?FI0 Close 1 LDA #BRIT.MAP STA IR0+1 Open 1,12 ,}RTSWriteBrit LDA #0 STA IR3 STA IR3+1 STA IR4 Point 1 LDA sf BEQ ??e0 LDA dvn STA Brit+1 Close 2 LDA #Brit STA IR0+1 Open 2,8 CPY #1 BEQ ??OKWB STY IR6 JMP IOERROR??OKWB LDA #Sc STA IR0.}+1 LDA #<1024 STA Ir1 LDA #>1024 STA Ir1+1 LDA #64 STA i??Bi BGet 1 BPut 2 DEC i BNE ??Bi Close 2 RTS??e0 LDA /}#17 STA Sec LDA #0 STA Sec+1 LDA #Sc STA IR0+1 LDA #<1024 STA IR1 LDA #>1024 STA IR1+1 LDA #640} STA i??Wrlp BGet 1 LDA #Sc STA sc_+1 LDA #'P STA Cmd LDA #8 STA IR7 JSR RWSec DEC i BNE ??Wrl1}p RTSIicnn LDA icnn ASL A CLC ADC #<[scadr+32+155*40] STA IR0 LDA #>[scadr+32+155*40] ADC #0 STA IR0+1 LDY #0 LD2}X #4?IILP LDA (IR0),Y EOR #255 STA (IR0),Y INY LDA (IR0),Y EOR #255 STA (IR0),Y TYA CLC ADC #39 TAY DEX BNE ?II3}LP RTSInv_ LDA smd BNE ?Math LDA #<[scadr+663] STA IR0 LDA #>[scadr+663] JMP ?FI2?Math CLC TAY LDA #<[scadr+343]4} ADC m640L,y STA IR0 LDA #>[scadr+343] ADC m640H,y?FI2 STA IR0+1 LDX #7?REPI_1 LDY #13?REPI_ LDA #255 EOR (IR0),Y 5}STA (IR0),Y DEY BPL ?REPI_ CLC LDA #40 ADC IR0 STA IR0 BCC ?SKI_ INC IR0+1?SKI_ DEX BPL ?REPI_1 RTSDispMenu LDY6} smd BNE ?CDM??RT RTS?CDM CLC LDA #<[scadr+357] ADC m640L,y STA gsc LDA #>[scadr+357] ADC m640H,y STA gsc+1 LDA c7}nt,Y JSR WriteB LDY smd CPY #6 BEQ ??RT CLC LDA gsc ADC #<303 STA gsc LDA gsc+1 ADC #>303 STA gsc+1 LDA cnt,y CM8}P cmax,y BEQ ?NOSKz BCS ?DOSKz?NOSKz LDA pcntLL,y STA IR1 LDA PcntLH,y STA IR1+1 LDA pcntHL,y sta IR2 LDA PcntHH,y9} STA IR2+1 LDA cnt,y TAY LDA (Ir1),y sta IR0 lda (Ir2),y sta IR0+1 JMP WriteCl?DOSKz LDA #FiE:}x STA IR0+1 JMP WriteNA .LOCALMenu LDA #Menudata STA Ir0+1 LDA #<[scadr+22] sta gsc LDA ;}#>[scadr+22] sta gsc+1 LDA #22 STA i?LPM JSR WriteNA clc LDA ir4 ADC Ir0 STA IR0 BCC ?SKb INC IR0+1?SKb clc LDA<} gsc adc #<320 STA gsc lDA gsc+1 ADC #>320 STA gsc+1 DEC i BNE ?LPM LDX #6?4lp LDA #254 STA [scadr+33+156*40],X L=}DA #3 STA [scadr+33+157*40],X LDA #127 STA [scadr+32+156*40],X LDA #96 STA [scadr+32+157*40],X DEX DEX BPL ?4lp LDY >}#6 LDA #0??lp STA cnt,y DEY BPL ??lp STA md STA icn STA sf LDA #6 STA smd?FR0 JSR DispMenu DEC SMD BNE ?FR0 RTS?}m40L .BYTE 0,<40,<80,<120,<160,<200,<240,<280 .BYTE <320,<360,<400,<440,<480,<520,<560,<600m40gH .BYTE +>gr8,>0,>40,>80,>@}120,>160,>200,>240,>280 .BYTE +>gr8,>320,>360,>400,>440,>480,>520,>560,>600DoIcn LDA #<[scadr+28+21*320] STA gsc LDA #>A}[scadr+28+21*320] STA gsc+1 LDA icn LDY icnn STA icnt,Y JSR WriteB LDA #160 STA IR0?Dlp LDA #scadr?DLC .BYTE 79,0,144?DLD .BYTE 66,L2,79,L1,79I},gr8?DLE .BYTE 65,DL8?DL0B .BYTE 112,112,112,66,gr0?DL0E .BYTE 65,DL0Init LDA #0 STA dma STAJ} dma2 Close 6 LDY #0 TYA?@@ STA $8000,Y INY BNE ?@@ INC ?@@+2 LDX ?@@+2 CPX #$A0 BNE ?@@ LDA #K}DL8 STA dl+1 LDY #5?@ LDA ?DLB,Y STA DL8,Y DEY BPL ?@ LDY #101 LDA #15?@0 STA DL8+6,Y STA DL8+107,Y DEY BPL ?@0 L}LDY #2?@1 LDA ?DLC,Y STA DL8+81,Y DEY BPL ?@1 LDY #8?@2 LDA ?DLD,Y STA DL8+183,Y DEY BPL ?@2 LDY #2?@3 LDA ?DLE,YM} STA DL8+207,Y DEY BPL ?@3 LDY #29 LDA #2?@4 STA DL0,Y DEY BNE ?@4 LDY #5?@5 LDA ?DL0B,Y STA DL0,Y DEY BPL ?@5 N}LDY #2?@6 LDA ?DL0E,Y STA DL0+29,Y DEY BPL ?@6 LDA #255 STA L1+18 STA L1+19 LDA #12 STA fg LDA #0 STA bg STA TextO}Mode STA sic STA vis TAY?ILP STA 1536,Y INY BNE ?ILP Close 1 LDA #UFN STA IR0+1 Open 1,4 CPY P}#1 BEQ ??Ci TYA JMP DoQuit??Ci LDA #PA STA IR0+1 LDA #<8192 STA IR1 LDA #>8192 STA IR1+1 BGet Q}1 Close 1 LDA #BRIT.MAP STA IR0+1 Open 1,4 CPY #1 BEQ ??Di TYA JMP DoQuit??Di Close 1 LDR}A #BRIT.MAP STA IR0+1 OPEN 1,12 JSR Menu LDA #0 STA crmd STA vdel STA oyv STA ps0 STA TtypS} STA icnn LDY #3?pcl STA 53248,y DEY BPL ?pcl STA smd JSR Inv_ JSR Iicnn LDA #'1 STA dvn LDY #3?icnt TYA STA icnT}t,Y DEY BPL ?icnt LDA #1 STA ocrmd STA gprior LDA #4 STA pmb LDA #16 STA pc0 LDA #2 STA gractl LDA #42 sta dma U}RTS .LOCALPosCur LDA crmd CMP ocrmd BEQ ?CONT STA ocrmd LDA #255 STA ox STA oy?CONT LDA rx CMP ox BEQ ?SKIP sV}ta ox ASL A ASL A LDX crmd BNE ?NEQ ASL A CLC ADC #48 BNE ?PSKIP?NEQ CLC ADC #76?PSKIP STA p0x?SKIP LDA ry CMPW} oy BNE ?CNT RTS?CNT STA oy LDA crmd BNE ?ocr LDA #255 STA IR0 LDA #8 STA IR0+1 LDA #0 STA IR1 LDA #16 BNE ?FIX}?ocr LDA #240 STA IR0 LDA #4 STA IR0+1 LDA #255 STA IR1 LDA #44?FI STA IR1+1 ldy oyv ldx #8 lda #0?REP sta 1536,yY} iny dex bne ?rep lda ry asl a asl a bit IR1 bmi ??SK asl a??SK adc IR1+1 sta oyv tay lda IR0 ldx IR0+1?rep2 sZ}ta 1536,y iny dex bne ?rep2 RTS .LOCALGLP LDA #16 STA i?lpG2 LDA Ir5 BNE ?DoBPut BGet 1 JMP ?SkBPut?DoBPut B[}Put 1?SkBPut CLC LDA IR0 ADC #32 STA IR0 BCC ?cc2 INC Ir0+1?cc2 DEC i BNE ?lpG2 RTSDoBl STA IR3+1 LDA #0 STA \}IR3 STA IR4 Point 1 LDA #Sc STA Ir0+1 LDA #16 STA IR1 LDA #0 STA IR1+1 JSR GLP CLC LDA IR3+1 ]}ADC #16 STA IR3+1 Point 1 JSR GLP LDA oq STA IR3+1 inc IR3+1 AND #$F CMP #$F BNE ?KOK LDA oq AND #$F0 STA IR3+1?^}KOK Point 1 LDA #<[Sc+16] stA Ir0 LDA #>[Sc+16] STA Ir0+1 JSR GLP CLC LDA IR3+1 ADC #16 STA IR3+1 Point 1 JMP GLP_}GetBl LDA #0 STA IR5 LDA my ASL A ASL A ASL A ASL A CLC ADC mx STA oq JMP DoBlPutBl LDA #255 STA IR5 LDA oq`} JMP DoBl .LOCALRot STA IR0 STA IR1 STA IR2 STA IR3 LDY #>[Pa+3840] STY IR2+1 DEY STY IR0+1 LDY #>[Pa+3840+4096]a} STY IR3+1 DEY STY IR1+1 LDY #0 LDX #15 LDA (Ir2),Y STA IR4 LDA (IR3),Y STA IR4+1?RotLP LDA (Ir0),Y STA (Ir2),Y b}LDA (IR1),Y STA (IR3),Y DEC IR0+1 DEC IR1+1 DEC IR2+1 DEC IR3+1 DEX BNE ?RotLP LDA IR4 STA (IR2),y LDA IR4+1 STA (c}IR3),y RTSFlag STA IR0+1 LDA rnd AND #3 BNE ?NoX RTS?NoX STX IR0 LDY #0 LDA (IR0),Y TAX INC IR0+1 LDA (IR0),Y d}STA Ir1 TXA STA (IR0),Y DEC Ir0+1 LDA Ir1 STA (Ir0),Y LDX Ir0 CPX #16 BEQ ?DFl CPX #18 BNE ?NFl?DFl LDA IR0+1 CMPe} #>[pa+4096+512] BEQ ?NFl CLC ADC #16 STA IR0+1 BNE ?NoX?NFl RTS?FPaH .BYTE >[pa+256],>[pa+768],>[pa+4096+256] .BYTEf} >[pa+512],>[pa+512]?FNm .BYTE 14,10,11,16,18DoChr LDA #0 JSR Rot LDA #1 JSR Rot LDA #2 JSR Rot LDA #76 JSR Rot Lg}DY #4 STY IR4?DCLP LDY IR4 LDA ?FPaH,Y LDX ?FNm,Y JSR Flag DEC IR4 BPL ?DCLP LDA #>Pa STA IR0+1 STA IR1+1 STA IR2+h}1 STA IR3+1 LDY #68 STY IR0 INY STY IR2 INY STY IR1 INY STY IR3 LDY #0 LDX #32?DCLP1 LDA rnd AND #170 STA (IR0i}),y INC IR0+1 STA IR4 LSR A STA (IR1),y INC IR1+1 ORA IR4 STA IR4 LDA rnd AND #170 ORA IR4 STA (IR2),y INC IR2+1j} LDA (IR3),Y EOR #255 STA (IR3),y INC IR3+1 DEX BNE ?DCLP1 LDA #>[pa+$700] STA IR0+1 LDA #>[pa+$1700] STA IR1+1 LDAk} #75 STA IR0 STA IR1 LDX #6?DCLP2 LDA rnd AND #21 STA Ir2 LDA (Ir0),y AND #224 ORA IR2 STA (IR0),y LDA rnd AND #l}64 STA IR2 LDA (Ir1),y AND #63 ORA IR2 STA (IR1),y INC IR1+1 INC IR0+1 DEX BNE ?DCLP2 RTS .LOCALCPlot ASL A Am}DC #0 CLC ADC m640L,Y STA IR0 LDA m640H,Y ADC #>scadr STA IR0+1 LDA #57344 STA Ir1+1?LPCPo} LDA (Ir1),y STA (IR0),y CLC LDA IR0 ADC #39 STA IR0 BCC ?CPsk2 INC IR0+1?CPsk2 INY CPY #8 BNE ?LPCP RTSDoShowPp}e ASL A ASL A ASL A ASL A STA j LDX #8 STX i LDA #16 STA IR7?DSPlp LDX j LDA Pe+64,X LDY Pe+72,X LDX IR7 CLC q}JSR CPlot INC j INC IR7 DEC i BNE ?DSPlp RTSShowM3 LDA #15 STA i?SM3lp LDX i LDA Pe+64,x LDY Pe+80,x LDX #'M-32r} SEC JSR CPlot DEC i BPL ?SM3lp LDA #2 JMP DoShowPeShowM4 LDA Ptyp CMP #2 BNE ?SMELSE LDA per ASL A ASL A TAYs} STY IR7 LDA Pe+1,Y JSR SPLT LDX #'T-32 SEC JSR CPlot LDY IR7 LDA Pe+2,Y JSR SPLT LDX #'1-32 CLC JSR CPlot LDY IRt}7 LDA Pe+3,Y JSR SPLT LDX #'2-32 CLC JMP CPlot?SMELSE LDA s_dir JMP DoShowPe .LOCALm40sL .BYTE <33824,<33864,<33u}904,<33944,<33984,<34024,<34064,<34104,<34144,<34184,<34224,<34264,<34304,<34344,<34384,<34424 .BYTE <34464,<34504,<34544,<3v}4584,<34624,<34664,<34704,<34744,<34784,<34824,<34864,<34904,<34944,<34984,<35024,<35064 .BYTE <35104,<35144,<35184,<35224,<w}35264,<35304,<35344,<35384,<35424,<35464,<35504,<35544,<35584,<35624,<35664,<35704 .BYTE <35744,<35784,<35824,<35864,<35904,x}<35944,<35984,<36024,<36064,<36104,<36144,<36184,<36224,<36264,<36304,<36344 .BYTE <36384,<36424,<36464,<36504,<36544,<36584y},<36624,<36664,<36704,<36744,<36784,<36824,<36864,<36904,<36944,<36984 .BYTE <37024,<37064,<37104,<37144,<37184,<37224,<3726z}4,<37304,<37344,<37384,<37424,<37464,<37504,<37544,<37584,<37624 .BYTE <37664,<37704,<37744,<37784,<37824,<37864,<37904,<379{}44,<37984,<38024,<38064,<38104,<38144,<38184,<38224,<38264 .BYTE <38304,<38344,<38384,<38424,<38464,<38504,<38544,<38584,<38|}624,<38664,<38704,<38744,<38784,<38824,<38864,<38904 .BYTE <38944,<38984,<39024,<39064,<39104,<39144,<39184,<39224,<39264,<3}}9304,<39344,<39384,<39424,<39464,<39504,<39544 .BYTE <39584,<39624,<39664,<39704,<39744,<39784,<39824,<39864,<39904,<39944,<~}39984,<40024,<40064,<40104,<40144,<40184 .BYTE <40224,<40264,<40304,<40344,<40384,<40424,<40464,<40504,<40544,<40584,<40624,}<40664,<40704,<40744,<40784,<40824m40sH .BYTE >33824,>33864,>33904,>33944,>33984,>34024,>34064,>34104,>34144,>34184,>34224,}>34264,>34304,>34344,>34384,>34424 .BYTE >34464,>34504,>34544,>34584,>34624,>34664,>34704,>34744,>34784,>34824,>34864,>34904},>34944,>34984,>35024,>35064 .BYTE >35104,>35144,>35184,>35224,>35264,>35304,>35344,>35384,>35424,>35464,>35504,>35544,>3558}4,>35624,>35664,>35704 .BYTE >35744,>35784,>35824,>35864,>35904,>35944,>35984,>36024,>36064,>36104,>36144,>36184,>36224,>362}64,>36304,>36344 .BYTE >36384,>36424,>36464,>36504,>36544,>36584,>36624,>36664,>36704,>36744,>36784,>36824,>36864,>36904,>36}944,>36984 .BYTE >37024,>37064,>37104,>37144,>37184,>37224,>37264,>37304,>37344,>37384,>37424,>37464,>37504,>37544,>37584,>3}7624 .BYTE >37664,>37704,>37744,>37784,>37824,>37864,>37904,>37944,>37984,>38024,>38064,>38104,>38144,>38184,>38224,>38264 }.BYTE >38304,>38344,>38384,>38424,>38464,>38504,>38544,>38584,>38624,>38664,>38704,>38744,>38784,>38824,>38864,>38904 .BYTE }>38944,>38984,>39024,>39064,>39104,>39144,>39184,>39224,>39264,>39304,>39344,>39384,>39424,>39464,>39504,>39544 .BYTE >39584},>39624,>39664,>39704,>39744,>39784,>39824,>39864,>39904,>39944,>39984,>40024,>40064,>40104,>40144,>40184 .BYTE >40224,>4026}4,>40304,>40344,>40384,>40424,>40464,>40504,>40544,>40584,>40624,>40664,>40704,>40744,>40784,>40824hdy .BYTE $FF,$FFhdx .B}YTE $FF,0,1,1,1,0,$FF,$FF,$FF,0m11 .BYTE 0,11,22,33,44,55,66,77,88,99,110Spike STA IR0 STY IR0+1?DOs CLC LDA IR0 ADC} hdx,X CMP #11 BCS ?Esz STA IR0 CLC LDA IR0+1 ADC hdy,X CMP #11 BCS ?Esz STA IR0+1 TAY LDA m11,Y CLC ADC IR0 TA}Y LDA hbuf2,Y STA hbuf1,Y CMP #127 BEQ ?Esz CMP #6 BEQ ?Esz CMP #8 BEQ ?Esz CMP #73 BNE ?DOs?Esz RTSVis_ LDX #1}20 LDA #126?vh STA hbuf1,X DEX BPL ?vh LDA #1 STA IR1 LDY ry LDA m11,Y CLC ADC rx TAX LDA hbuf2,X STA hbuf1,X?D}Ovo LDA rx STA IR2 LDA ry STA IR2+1?Dovi LDX IR1 CLC LDA IR2 ADC hdx,X CMP #11 BCS ?ODvi STA IR2 CLC LDA IR2+1} ADC hdy,X CMP #11 BCS ?ODvi STA IR2+1 TAY LDA m11,Y CLC ADC IR2 TAX LDA hbuf2,X STA hbuf1,X CMP #127 BEQ ?ODvi }CMP #6 BEQ ?ODvi CMP #8 BEQ ?ODvi CMP #73 BEQ ?ODvi LDX IR1 DEX LDA IR2 LDY IR2+1 JSR Spike INX INX LDA IR2 LDY} IR2+1 JSR Spike JMP ?DOvi?ODvi INC IR1 LDA IR1 CMP #9 BCS ?dnv JMP ?DOvo?dnv RTSDisplay LDA 704?DSDG CLC ADC #}16 BEQ ?DSDG STA 704 JSR DoChr LDA #0 STA IR0+1 LDA j ASL A ASL A ASL A ASL A ROL IR0+1 ASL A ROL IR0+1 CLC AD}C i STA ?cil+1;lk LDA IR0+1 ADC #>Sc STA ?cil+2 LDX #0?cyl LDY #0?cil LDA $FFFF,Y STA hbuf2,X INX INY CPY #11 BN}E ?cil CLC LDA ?cil+1 ADC #32 STA ?cil+1 BCC ?dn? INC ?cil+2?dn? CPX #121 BCC ?cyl LDA vis BEQ ?nvis LDA md CMP }#2 BCS ?nvis JSR Vis_;;IF ((md=0) OR (md=1)) AND (vis=1) THEN;Do Visibility check JMP DoDisp_?nvis LDX #120?mbh LDA hb}uf2,X STA hbuf1,X DEX BPL ?mbhDoDisp_ LDA #0 STA IR0?Dlp STA ?yld+1?ilp LDY IR0 LDA m40sL,Y STA ?stor0+1 STA ?s}tor1+1 LDA m40sH,Y STA ?stor0+2 STA ?stor1+2 TYA AND #15 ORA #160 STA ?get0+2 ORA #176 STA ?get4096+2 LDX #0?yld L}DY hbuf1?get0 LDA $FF00,Y?stor0 STA $FFFF,X INX?get4096 LDA $FF00,Y?stor1 STA $FFFF,X INC ?yld+1 INX CPX #22 BCC ?yl}d INC IR0 LDA IR0 CMP #176 BEQ ?DoneDisp AND #15 BEQ ?ilp LDA ?yld+1 SEC SBC #11 JMP ?Dlp?DoneDisp LDA sic BEQ ?}DoIcn LDA md CMP #3 BNE ?Nmd3 JSR ShowM3 JMP ?DoIcn?Nmd3 CMP #4 BNE ?DoIcn JSR ShowM4?DoIcn JSR DoIcn RTS .LOCAL}M_Fount STA Ir0 STX IR0+1 LDY #5 LDA (IR0),Y STA IR1?MDo DEY LDA (IR0),Y INY STA (IR0),Y DEY BNE ?MDo LDA IR1 }STA (Ir0),y RTSMod_ LDA #gf_ JSR M_Fount LDA #pf_ JSR M_Fount LDA #pf2_ JSR M_F}ount LDA #cf_ JSR M_Fount LDA #poi_ STA IR0+1 LDA #fir_ STA IR1}+1 LDA #lig_ STA IR2+1 LDA #sl_ STA IR3+1 LDY #0?ylp LDA rnd AND #170 STA} (Ir0),Y STA Ir4 LSR A STA (Ir1),Y ORA Ir4 STA Ir4 LDA rnd AND #170 ORA Ir4 STA (Ir2),Y LDA (Ir3),Y EOR #255 STA }(IR3),Y INY CPY #8 BNE ?ylp RTS Ind_ LDX #0??ind CMP ToV,X BEQ ?dn INX CPX #22 BNE ??ind?dn RTSdd .SBYTE 34,"}00"DoDngIcn LDA #<[scadr+24+21*320] STA gsc LDA #>[scadr+24+21*320] STA gsc+1 SEC LDA icn SBC #22 BCS ?elsie LDA #}3 STA Blnk LDA #Blnk STA IR0+1 JSR Write JMP ?FIDDI?elsie STA IR7 LDA cnt+4 ASL A ASL A ASL }A ASL A ORA IR7 STA IR7 LDA cnt+4 CMP #7 BNE ??fii LDA xx AND #254 ASL A ASL A ASL A CLC ADC IR7 STA IR7??fii} LDA IR7 JSR WriteB?FIDDI LDA #<[scadr+23+20*320] STA IR0 LDA #>[scadr+23+20*320] STA IR0+1 LDX icn CPX #22 BCC ?jdi} LDX #22?jdi LDA chadL,X STA ?ilp+1 LDA chadH,X STA ?ilp+2 LDY #0 LDX #0?ilp LDA $FFFF,X STA (IR0),Y CLC LDA IR0 }ADC #40 STA IR0 BCC ??CCilp INC IR0+1??CCilp INX CPX #8 BNE ?ilp LDA #<[scadr+25+20*320] STA gsc LDA #>[scadr+25+20*}320] STA gsc+1 LDA icn CMP #22 BCC ?ELSEDDI SEC SBC #22 STA IR0 LDA #10 STA IR1 JSR BDiv CLC LDA IR2 ADC #16 ST}A dd+1 LDA IR0 ADC #16 STA dd+2 LDA #
dd STA IR0+1 JMP Write?ELSEDDI LDA #2 STA Blnk LDA #Blnk STA IR0+1 JMP WriteDispDng JSR Mod_ LDA #0 STA IR3+1 LDA xx asl A ASL A ASL A ASL A ASL A }ASL A ROL IR3+1 ADC #Sc STA IR3+1 LDA #<[scadr+2247] STA IR1 LDA #>[scadr+2247] STA IR1}+1 LDA #7 STA j??ypDO CLC LDA IR1 STA Ir0 ADC #<320 STA IR1 LDA IR1+1 STA IR0+1 ADC #>320 STA IR1+1 LDA #7 STA }i LDA #0 STA IR6??xpDO LDY IR6 LDA (IR3),Y JSR Ind_ INC IR6 LDA chadL,X STA ?Lrep+1 LDA chadH,X STA ?Lrep+2 LDA I}R0+1 STA IR2+1 LDA IR0 STA IR2 INC IR2 BNE ??nir2 INC IR2+1??nir2 ldy #0?Lrep lda $FFFF,Y sta (IR0),y clc lda IR0} adc #39 sta IR0 bcc ?nir0 inc IR0+1?nir0 iny cpy #8 bne ?Lrep LDA IR2 STA IR0 LDA IR2+1 STA IR0+1 DEC i BPL ??x}pDO CLC LDA IR3 ADC #8 STA IR3 BCC ??ccd INC IR3+1??ccd DEC j BPL ??ypDO JMP DoDngicn .INCLUDE #D:incpe.M65 .IN}CLUDE #D:end.M65 ADC #8 STA IR3 BCC ??ccd INC IR3+1??ccd DEC j BPL ??ypDO JMP DoDngicn .INCLUDE #D:incpe.M65 .IN